import java.util.ArrayList;
import java.util.List;

//这段代码定义了一个名为MyHashMap的泛型类，其中K表示键的类型，V表示值的类型
//简单实现，但这里仅实现了put、get、remove方法没有解决hash冲突，以及存储过多服务是不可用的
public class MyHashMap1<K, V> {

    List<Node<K, V>> table = new ArrayList<>();
    public V put(K key, V value){
        //判断有没有我们这个key
        int index = key.hashCode() % table.size();
        Node<K, V> node = table.get(index);
        if (node == null) {
            node = new Node<>();
            node.key = key;
            node.value = value;
            table.add(index, node);
        }
        else {
            node.value = value;
        }
        return null;
    }

    public V get(K key){
        //[1,2,3, null, null] size = 3
        //[1,3, null,null] size = 2
        int index = key.hashCode() % table.size();
        Node<K, V> node = table.get(index);
        if (node != null && node.key.equals(key)) {
            return node.value;
        }
        return null;
    }

    public V remove(K key){
        int index = key.hashCode() % table.size();
        Node<K, V> node = table.get(index);
        if (node != null && node.key.equals(key)) {
            Node<K, V> removenode = table.remove(index);
            return removenode.value;
        }
        return null;
    }

    class Node<K, V>{
        public K key;
        public V value;
    }

}
